package com.wujunshen.tdd.flags;

import com.wujunshen.tdd.common.FlagType;

import java.util.Iterator;

/**
 * @author frank woo(吴峻申) <br>
 *     email:<a href="mailto:frank_wjs@hotmail.com">frank_wjs@hotmail.com</a> <br>
 * @date 2021/12/15 14:35<br>
 */
public interface Flag<T> {
  /**
   * 初始化各种类型参数
   *
   * @param flag flag值
   * @param type 数据类型
   */
  void initParameters(String flag, FlagType type);

  /**
   * 设定各种类型的值
   *
   * @param flag flag值
   * @param argIter 循环值
   */
  void setValue(String flag, Iterator<String> argIter);

  /**
   * 获取各种类型值
   *
   * @param flag flag值
   * @return 各种类型值
   */
  T getValue(String flag);
}
